package com.hluobo.library.dao;

public interface AbstractDao {
	/**
	 * 保存实体
	 * @param entity 要保存的实体类
	 */
	public void save(Object entity);
	
	/**
	 * 删除实体类
	 * @param entityClass 实体类Class
	 * @param primaryKey 实体类主键
	 */
	public <T> void delete(Class<T> entityClass, Object primaryKey);
	
	/**
	 * 删除多个实体类
	 * @param entityClass 实体类Class
	 * @param primaryKeys 实体类主键数组
	 */
	public <T> void delete(Class<T> entityClass, Object[] primaryKeys);
	
	/**
	 * 修改实体类
	 * @param entity 实体类
	 */
	public void update(Object entity);
	
	/**
	 * 查询实体类
	 * @param entityClass 实体类Class
	 * @param primaryKey 实体主键
	 * @return
	 */
	public <T> T query(Class<T> entityClass, Object primaryKey);
	
}
